from django.core.mail import send_mail
from django.conf import settings
from celery_tasks.main import celery_app 

import os
import sys
sys.path.append('/app/py-pro/project/e-commerce/shop')
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'shop.settings.dev')


#发送邮箱验证邮件任务
#每次给予重试的时间为2^(n-1) *  retry_backoff，也就是1 6 12 24 s
@celery_app.task(bind=True,name='send_verify_email',retry_backoff=3)
def send_verify_email(self,to_email,verify_url):
    #参数： 标题 正文 发件人 收件人列表 富文本邮件正文（html）
    subject = 'shop邮箱验证'
    html_message = ('<p>尊敬的用户您好！</p>' \
                   '<p>感谢您使用商城。</p>' \
                   '<p>您的邮箱为：%s 。请点击此链接激活您的邮箱：</p>' \
                   '<p><a href="%s">%s</a></p>' % (to_email, verify_url, verify_url) )
         
    # send_mail(subject,None,settings.EMAIL_FROM,[to_email],html_message=html_message)
    try:
        send_mail(subject,None,'shop<17332694252@163.com>',[to_email],html_message=html_message)
    except Exception as e:
        #最多尝试三次
        raise self.retry(exec=e,max_retries=3)
        
        
    